|
|
ShowTable of Contents Example Messages
This article contains sample XML messages that show how to update a local database using Lotus Expeditor integrator.
DBRecordUpdate message with SQL statement
Create Table Example
Example #1: XML message example for creating table menu in a local Derby database SampleDb using SQL in message payload
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000" JMSPriority="4"
JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecUpd_MsgId-Test_001"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecUpd_TxId-Test_001"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordUpdate"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="SQL"/>
<headerProperty name="DestinationCreationMode" type="java.lang.String" value="TABLE_CREATE"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb;create=true';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="Local_Message_Editor"/>
<text>CREATE TABLE menu(course CHAR(10), item CHAR(20), price INTEGER);</text>
</textMessage>
</entry>
</content>
Insert Data Example
Example #2: XML message example for inserting data into table menu of local Derby database SampleDb using SQL in message payload
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000"
JMSPriority="4" JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecUpd_MsgId-Test_002"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecUpd_TxId-Test_002"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordUpdate"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="SQL"/>
<headerProperty name="DestinationCreationMode" type="java.lang.String" value="INSERT"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="Local_Message_Editor"/>
<text>INSERT INTO menu VALUES ('appetizer','baby greens',7);
INSERT INTO menu VALUES ('entree','lamb chops ',6); INSERT INTO menu VALUES ('dessert','creme brulee',14);</text>
</textMessage>
</entry>
</content>
DBRecordUpdate message with XPDINTEG DBXML command and data structure
Note: The must be escaped within the tag of an XML message (see Listing 32).
Example #3: XML message example for creating table menu in a local Derby database SampleDb using in message payload
{code:} <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000"
JMSPriority="4" JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecUpd_MsgId-Test_011"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecUpd_TxId-Test_011"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordUpdate"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="XPDINTEG_DBXML"/>
<headerProperty name="DestinationCreationMode" type="java.lang.String" value="TABLE_CREATE"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb;create=true';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="Local_Message_Editor"/>
<text><?xml version="1.0" encoding="utf-8" ?"
<!-- COMMAND -->
<database-command>
<create table-name="menu">
<create-clause>course CHAR(10), item CHAR(20), price INTEGER</create-clause>
</create>
</database-command>
<!--DATA -->
</text>
</textMessage>
</entry>
</content> {code}
INSERT Data Example using XPDINTEG DBXML structure
Example #4: XML message example for inserting data into table menu of local Derby database SampleDb using in message payload
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000"
JMSPriority="4" JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecUpd_MsgId-Test_012"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecUpd_TxId-Test_012"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordUpdate"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="XPDINTEG_DBXML"/>
<headerProperty name="DestinationCreationMode" type="java.lang.String" value="INSERT"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="Local_Message_Editor"/>
<text><?xml version="1.0" encoding=<utf-8" ?>
<!-- COMMAND -->
<database-command>
<insert table-name="menu">
<column name="course" type="string">appetizer</column>
<column name="item" type="string">baby greens</column>
<column name="price" type="int">7</column>
</insert>
<insert table-name="menu">
<column name="course" type="string">entree</column>
<column name="item" type="string">lamb chops</column>
<column name="price" type="int">6</column>
</insert>
<insert table-name="menu">
<column name="course" type="string">dessert</column>
<column name="item" type="string">creme brulee</column>
<column name="price" type="int">14</column>
</insert>
</database-command>
<!--DATA -->
</text>
</textMessage>
</entry>
</content>
UPDATE Data Example using XPDINTEGD BXML structure
Example #5: XML message example for updating data in table menu of local Derby database SampleDb using in message payload
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000"
JMSPriority="4" JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecUpd_MsgId-Test_1013"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecUpd_TxId-Test_1013"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordUpdate"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="XPDINTEG_DBXML"/>
<headerProperty name="DestinationCreationMode" type="java.lang.String" value="UPDATE"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="SFs_HermesJMS"/>
<text>"?xml version="1.0" encoding="utf-8" ?>
<!-- COMMAND -->
<database-command>
<update table-name="menu">
<set-clause>
<column name="price" type="expr">price+2</column>
<column name="course" type="string">starter</column>
</set-clause>
<where-clause type="string">course="dessert"</where-clause>
</update>
<update table-name="menu">
<set-clause>
<column name="course" type="string">main</column>
</set-clause>
<where-clause type="string">item="lamb chops"</where-clause>
</update>
</database-command>
<!--DATA -->
</text>
</textMessage>
</entry>
</content>
UPDATE INSERT Data Example using XPDINTEG DBXML structure
Example #6: XML message example for updating data in table menu of local Derby database SampleDb using in message payload. If updated record does not exist the next insert statement is executed.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000"
JMSPriority="4" JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecUpd_MsgId-Test_1014"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecUpd_TxId-Test_1014"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordUpdate"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="XPDINTEG_DBXML"/>
<headerProperty name="DestinationCreationMode" type="java.lang.String" value="UPDATE_INSERT"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="SFs_HermesJMS"/>
<text> <?xml version="1.0" encoding="utf-8" ?>
<!-- COMMAND -->
<database-command>
<update_insert table-name="menu">
<set-clause>
<column name="price" type="expr">price+3</column>
</set-clause>
<where-clause type="string">course="dessert""/where-clause>
<insert table-name="menu">
<column name="course" type="string">dessert</column>
<column name="item" type="string">apfelstrudel</column>
<column name="price" type="int">3</column>
</insert>
</update_insert>
</database-command>
<!--DATA -->
</text>
</textMessage>
</entry>
</content>
DBRecordSelect message with SQL statement
Select Message Example
Example #7: XML message example for selecting data from table menu of local Derby database SampleDb using SQL in message payload
{ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000"
JMSPriority="4" JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecSel_MsgId-Test_1022"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecSel_TxId-Test_1022"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordSelect"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="SQL"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="SFs_HermesJMS"/>
<text>SELECT * FROM menu;</text>
</textMessage>
</entry>
</content>
The retrieved database ResultSet is provided back in an XML message (compliant to the ).
Listing 37: Example ResultSet which is provided back as XML message in
<?xml version="1.0" encoding="utf-8" ?>
<tables>
<table name="MENU">
<row>
<column name="COURSE" type="CHAR">dessert </column>
<column name="ITEM" type="CHAR">creme brulee </column>
<column name="PRICE" type="INTEGER">14</column>
</row>
</table>
</tables>
DBRecordSelect message with XPDINTEG DBXML command and data structure
Note: The must be escaped within the tag of an XML message (see Listing 32).
Example #8: XML message example for selecting data from table menu of local Derby database SampleDb using in message payload
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<content>
<entry type="1">
<textMessage JMSDeliveryMode="2" JMSExpiration="0"
JMSMessageID="ID:C1BC481C828AC4132618A8A77938561E79A15D2700000000"
JMSPriority="4" JMSRedelivered="false" JMSTimestamp="1228167617826">
<headerProperty name="LocationId" type="java.lang.String" value="Store2100"/>
<headerProperty name="MessageId" type="java.lang.String" value="SF_DbRecSel_MsgId-Test_1021"/>
<headerProperty name="TransactionId" type="java.lang.String" value="SF_DbRecSel_TxId-Test_1021"/>
<headerProperty name="HeaderVersion" type="java.lang.String" value="2.0"/>
<headerProperty name="MessagePurpose" type="java.lang.String" value="DBRecordSelect"/>
<headerProperty name="TransportType" type="java.lang.String" value="DB"/>
<headerProperty name="ResourceCmd" type="java.lang.String" value="XPDINTEG_DBXML"/>
<headerProperty name="DestinationPath" type="java.lang.String"
value="DBURI:'jdbc:derby:datatrans/inbound/SampleDb';DRIVER_CLASS:'org.apache.derby.jdbc.EmbeddedDriver'"/>
<headerProperty name="DestinationName" type="java.lang.String" value="menu"/>
<headerProperty name="TransferMode" type="java.lang.String" value="ASCII"/>
<headerProperty name="SequenceNo" type="java.lang.Integer" value="0"/>
<headerProperty name="EndOfData" type="java.lang.Boolean" value="true"/>
<headerProperty name="BuildInterval" type="java.lang.Long" value="0"/>
<headerProperty name="ResourceSize" type="java.lang.Long" value="991"/>
<headerProperty name="TimeStamp" type="java.lang.String" value="Mon Dec 01 21:52:43 CET 2008"/>
<headerProperty name="TTL" type="java.lang.Long" value="0"/>
<headerProperty name="MessageSrcId" type="java.lang.String" value="SFs_HermesJMS"/>
<text>"?xml version="1.0" encoding="utf-8" ?>
<!-- COMMAND -->
<database-command>
<select table-name="menu">
<select-clause>*</select-clause>
<where-clause>item="creme brulee" AND course="dessert"</where-clause>
</select>
</database-command>
<!--DATA -->
</text>
</textMessage>
</entry>
</content>
The retrieved database ResultSet is provided as format in XML reply messages (see example in Listing 37).
|